<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/7/3 0003
 * Time: 10:37
 */

namespace app\currency\service;


class DateService
{
    public static function beginToday()
    {
        return date('Y-m-d').' 00:00:00';
    }
    public static function endToday()
    {
        return date('Y-m-d').' 23:59:59';
    }
    /**
     * 本周的开始日期
     *
     * @param bool $His     是否展示时分秒 默认true
     *
     * @return false|string
     */
    public static function beginWeek($His = true)
    {
        $timestamp = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1, date('Y'));
        return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
    }
    /**
     * 本周的结束日期
     *
     * @param bool $His     是否展示时分秒 默认true
     *
     * @return false|string
     */
    public static function endWeek($His = true)
    {
        $timestamp = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7, date('Y'));
        return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
    }
    /**
     * 本月的开始日期
     *
     * @param bool $His     是否展示时分秒 默认true
     *
     * @return false|string
     */
    public static function beginMonth($His = true)
    {
        $timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
        return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
    }
    /**
     * 本月的结束日期
     *
     * @param bool $His     是否展示时分秒 默认true
     *
     * @return false|string
     */
    public static function endMonth($His = true)
    {
        $timestamp = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
        return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
    }
    /**
     * 今年的开始日期
     *
     * @param bool $His     是否展示时分秒 默认true
     *
     * @return false|string
     */
    public static function beginYear($His = true)
    {
        $timestamp = mktime(0, 0, 0, 1, 1, date('Y'));
        return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
    }

    /**
     * 今年的结束日期
     *
     * @param bool $His     是否展示时分秒 默认true
     *
     * @return false|string
     */
    public static function endYear($His = true)
    {
        $timestamp = mktime(23, 59, 59, 12, 31, date('Y'));
        return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
    }
    public static function checkDateTime($date_time)
    {
        if ($date_time == date('Y-m-d H:i:s', strtotime($date_time))) {
            return true;
        } else {
            return false;
        }
    }
    public static function checkDateFormat($date)
    {
        //匹配日期格式
        if (preg_match ("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $date, $parts))
        {
            //检测是否为日期
            if(checkdate($parts[2],$parts[3],$parts[1]))
                return true;
            else
                return false;
        }
        else
            return false;
    }
    public static function checkDateMonthFormat($date)
    {
        //匹配日期格式
        if (preg_match ("/^([0-9]{4})-([0-9]{2})$/", $date, $parts))
        {
            //检测是否为日期
            if(checkdate($parts[2],1,$parts[1]))
                return true;
            else
                return false;
        }
        else
            return false;
    }
}